How to hide Drives

By Mohamed FaYeD

Pharaonic_Guy

Thensync@hotmail.com

 

عند وضع التصريح NoDrives في المفتاح Explorer :

HKEY_CURRENT_USER\Software\Microsoft\Windows\

                          CurrentVersion\Policies\Explorer

 

مع قيم محددة تمثل الأقراص من A إلي Z , يؤدي إلي إخفاء أي قرص علي حسب القيمة التي قمنا بوضعها..

والقيم التي نستطيع استخدامها لإخفاء الأقراص تتكون من أربع فئات:

 

 

Drive Letter

Value

A:

01 00 00 00

B:

02 00 00 00

C:

04 00 00 00

D:

08 00 00 00

E:

10 00 00 00

F:

20 00 00 00

G:

40 00 00 00

H:

80 00 00 00

I:

00 01 00 00

J:

00 02 00 00

K:

00 04 00 00

L:

00 08 00 00

M:

00 10 00 00

N:

00 20 00 00

O:

00 40 00 00

P:

00 80 00 00

Q:

00 00 01 00

R:

00 00 02 00

S:

00 00 04 00

T:

00 00 08 00

U:

00 00 10 00

V:

00 00 20 00

W:

00 00 40 00

X:

00 00 80 00

Y:

00 00 00 01

Z:

00 00 00 02

 

 

 

 

 

 

 

 

فمثلا لإخفاء القرص C نقوم بوضع  اسم القيمة NoDrives

ونوعها Dword وقيمتها تساوي 4 بالنظام السداسي عشر Hexadecimal.

 

  hexadecimal    decimal
  -----------    -------
      0            0   (zero)
    0x1            1   (one)
    0x2            2   (two)
    0x3            3   (three)
    0x4            4   (four)
    0x5            5   (five)
    0x6            6   (six)
    0x7            7   (seven)
    0x8            8   (eight)
    0x9            9   (nine)
    0xA           10   (ten)
    0xB           11   (eleven)
    0xC           12   (twelve)
    0xD           13   (thirteen)
    0xE           14   (fourteen)
    0xF           15   (fifteen)
   0x10           16   (sixteen)
   0x11           17   (seventeen)

 

 

فإذا أردنا إخفاء القرصين A,C بالتالي نقوم بجمع القيم كلا من القرصين (1+4) ونضع القيمة الناتجة  5 للتصريح NoDrives.. مما يؤدي إلي إخفاء القرصين.

 

هكذا تلاحظ من قيم الأقراص ..أنه لا توجد قيمتين ..إذا قمت بجمعهم ينتجوا قيمه أخري.. حتى لا تتضارب قيم الأقراص.

 

 مثال أخر نريد إخفاء القرصينC,D وبالتالي نضع اسم القيمة NoDrives ونوعها Dword وقيمتها مجموع قيمتي ال C و ال D وهما 12..

 

ولكن الرقم 12 يمثل عشريا .. والقيمة التي سنضعها قد تختلف فيما بعد مع النظام السداسي , وفيما بعد عليك التأكد من القيمة أولا بالنظام السداسي عشر ثم تحويلها إلي النظام العشري خاصة مع إخفاء أكثر من قرص من فئات مختلفة.

 

المهم الآن هو توضيح الأمر  فإذا قمت بوضع القيم يدويا حيث يلزم تحويل الرقم 12 إلي النظام السداسي ليكون 0C)), إذا كنا سنضع القيمة بالنظام السداسي.

 

مثال أخر نريد إخفاء أو أربعة أقراص ..A,B,C,D  :

 

إذا قمت بجمع القيم فستجدها 15... قم بتحويلها إلي النظام السداسي لتصبح (0F)

 

مثال أخر نريد أخفاء أول ثمانية أقراص A,B,C,D,E,F,G,H وهم داخل الفئة الأولي

 

A+B+C+D+E+F+G+H = 165

 

ثم بتحويل الرقم 165 إلي نظام السداسي ليصبح (A5), وهو ما سنقوم بوضعه للقيمة NoDrives بالنظام السداسي عشر  وذلك لإخفاء أول ثمانية أقراص.

 

لاحظ أنك إذا لم تكن تجيد التحويل بين أنظمة الأعداد, فيمكنك استخدام الآلة الحاسبة Calc في وضع Scientific

أو تستفيد من خاصية التحويل داخل برنامج محرر السجل RegEdit.exe.. كما في الصورة التالية..

 

تقوم بوضع القيمة بالصيغة العشرية في مربع نص Value Data ..

ولاحظ أنه يجب أن يكون الاختيار علي Decimal حتى تتأكد من أنك ستكتب أرقام بالصيغة العشرية.

 

ثم تضغط علي اختيارHexadecimal  , لتحصل علي القيمة النهائية التي ستضعها..

 

 

مثال أخر إذا أردت إخفاء الأقراص التالية :

A,C,E,N,O,R,U,Y,Z

فستنتج القيمة

0F 3C 0C 03

 

وذلك لأن

A+C+E =  01+ 04+10 = 15 = 0F (بالهكس)

 

N+O = 20+40  = 60 = 3C (بالهكس)

 

R+U = 02 + 10 = 12 = 0C (بالهكس)

 

Y+Z = 01 + 02 = 3 = 03 (بالهكس)

 

وبالتالي سنقوم بوضع القيمة (0F 3C 0C 03) بالنظام السداسي, أو القيم (15 60 12 3) بالنظام العشري لإخفاء الأقراص A,C,E,N,O,R,U,Y,Z, ويمكنك فعل ذلك عن طريق الدالة SetDwordValue ..

 

المهم لإظهار جميع الأقراص المخفية نضع القيمة

 00 00 00 00

ولإخفاء جميع الأقراص فبدون أن نجمع القيم يمكننا إسناد أعلي قيمة وهي FF, حتى تشمل جميع قيم الأقراص داخل الفئة الواحدة.

FF FF FF 03

 

Private Sub Hide_Drives()

 

Const HKCU = &H80000001

Set ObjReg = GetObject("winmgmts:\\.\root\Default:StdRegProv")

 

strkeypath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\"

 

' To hide A,B,C,D,E,F,G,H

 

ObjReg.SetDwordValue HKCU, strkeypath, "NoDrives", 165

 

' To hide A,B,C,D,E,F,G,H,I,J,K,L

 

ObjReg.SetDwordValue HKCU, strkeypath, "NoDrives", 65295   ' FF0F

 

' To hide A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P

 

ObjReg.SetDwordValue HKCU, strkeypath, "NoDrives", 65535   ' FFFF

 

' To hide all Drives

 

ObjReg.SetDwordValue HKCU, strkeypath, "NoDrives", 4294967295  ' FFFFFFFF

 

End Sub

 

يمكن استخدام برنامج الآلة الحاسبة Calc  في التحويل بين القيم

 

فمثلا  لتحويل القيمة FFFFFFFF إلي النظام العشري..

قم بتشغيل Calc.exe ثم اختر وضع الـ Scientfic Mode إذا لم منشطا

 

 

ثم اختيار الوضع Hex

 

 

وكتابة الرقم الذي تريد تحويله

 

 

ثم اختيار الوضع Dec.

 

 

يمكن القيام بتلك العملية برمجيا .. ولكن ليس هذا مجال حديثنا